package com.kmxd.ams.client.archive.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 整理规则
 *
 * @author nickbi
 * @since 2022-07-30
 */
@Schema(description = "整理规则对象")
@Data
public class ArchiveRuleMainAddDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 门类配置id 关联s_archive_type表主键 */
  @Schema(description = "门类配置id 关联s_archive_type表主键")
  @NotNull(message = "门类配置id 关联s_archive_type表主键不能为空")
  private Long archTypeId;

  private String docTableId;

  private String volTableId;

  private String boxTableId;

  private String projTableId;

  private String manageModel;

  /** 名称 对应线框图中的版本名称 */
  @Schema(description = "名称 对应线框图中的版本名称")
  @NotBlank(message = "版本名称不能为空")
  @Size(max = 100, message = "版本名称长度不能超过100个字符")
  private String name;

  /** 生效年度 由于初始版本需要显示0000，因此将类型从smallint调整为varchar */
  @Schema(description = "生效年度")
  @NotNull(message = "生效年度不能为空")
  private Integer validYear;

  @Schema(description = "新增整理规则版本")
  private Boolean init = Boolean.TRUE;
}
